【Filecoin】写在测试网上线之前
美国时间 2019年12月11日,也就是中国时间双十二,Filecoin测试网即将上线。首先上线的客户端为 Lotus,go-filecoin将在进一步完善后择期上线。
根据目前各方面的情报来看,团队对这一次准时上线信心很足。Michelle 在给 IPFS原力区开放日100期的贺词中就提到团队对测试网准时上线的信心,Lotus主要开发人员也表示了会准时上线。从开发的安排来看,目前一些基本的规范实现已经就位,虽然团队还在积极修复部分bug,但当前 devnet/11 版本运行比较稳定, 为上线打下了很好的基础。
Filecoin 测试网和主网上线,是 IPFS/Filecoin的拥趸们期待已久的大日子,这一天来得非常不容易。因为这是一个开创性的项目,简单来说,就是:太难了。还好,大多数难题都找到了安全的解决方案,有些方案可能不是最有效的,但安全的方案是链可靠运行的基础。
这些方案包括:
采用零知识证明(zkSNARK)来保证矿工确实存储了用户的数据;而且是持续完整地存储了用户数据
采用堆叠式深度鲁棒图(SDRG)和扩展图(EG)技术来解决存储证明的时延要求,和时空证明的时间上的安全要求,从而防止存储的欺骗(三种攻击方式)
把时空证明与领导人选举相结合(ePoSt)来进一步提高攻击难度和抵消可验证延迟函数不成熟带来的风险
采用创新的预期共识(EC)机制来实现高效的选举,并达到接近SSLE(秘密单领导人选举)的效果
采用GHOST(the Greedy Heaviest-Observed Sub-Tree,贪婪最重可见子树)的分叉聚合机制来实现链的稳定性
采用 POW(存储证明)+ POS(存储挖矿)相结合的方式,实现拜占庭容错同时满足经济性要求
以上解决方案的大多数算法和方案都是近年的研究成果,有一些就是在两年内出现的。所以说,Filecoin的实现是大量理论和实践突破的结果。这个目标能够在两年内实现本身就是一个奇迹。
除了上述方案的突破之外,Filecoin从实现的角度而言,也是有非常多的创新。Filecoin 虽然借助了一些密码相关的库,但其整个链的实现过程基本上是从零开始,虚拟机,一整套协议,证明相关逻辑,模块化机制及相关接口统统一一实现。Filecoin团队除了有世界一流的研究员,同时也有一批一流工程人员,非常善于把思想通过代码实现出来。
由于Filecoin是建立在IPFS基础之上的,IPFS的许多最新的研究成果也用于Filecoin之中了。这与现有的其他链也有比较大的区别,比如说:
充分利用 IPLD (IPFS的子项目)机制来组织区块和消息数据
区块/消息头和数据分离,有利于节省空间和传播
利用 Libp2p (IPFS的子项目)来建立矿工节点之间的连接
利用 Gossip PubSub 机制来实现链数据的传播
有了这一切为基础,Lotus才可能在半年之内从无到有实现出来,体现出很好的架构和思想,也为接下来的完善打好基础。而且,这些实现本身已经引起业界的重视,其中许多模块也开始被其他链采用,尤其是libp2p。
那么,是否Filecoin 测试网上线就意味着 Filecoin 代码基本就绪,比较修修bug就差不多了呢?不然。
从目前的实现来看,还是有不少东西需要在测试网期间实现并完善。测试网上线到主网上线这一段实践非常关键。团队还需要加班加点完成未完成的工作和保障安全。那么这些工作有哪些呢?简单列举一二,以供参考:
系统的安全性测试和审计,bug修复
大规模测试,希望测试网有大量的算力加入,这一点可以考虑奖励
建立完善的 FIP 机制,完善社区治理
SurprisePoSt 还没有完全实现
Slashing(就是所谓的惩罚)机制的全面实现
Vesting (代币释放)机制的实现和测试
解决目前ePoSt 效率过低的问题
基础检索功能的实现和完善
如有可能,增加一种新的客户端实现
欲戴皇冠,必承其重。
Filecoin 承载了太多的期待和梦想,也遭受过质疑和挑战。两年的时间已经过去,一个新的生态即将诞生。准备好,迎接这一切!